# @Filename:    matplotlibFunc
# @Author:      王佳伟
# @Time:        2025-04-09 9:49
# @Describe:    matplotlib
import matplotlib

matplotlib.use('TkAgg')

import matplotlib.pyplot as plt
import numpy as np

# 这里pyplot()是 matplotlib 库中最重要的函数，用于绘制 2D 数据。 以下脚本绘制方程y = 2x + 5

# x = np.arange(1, 11)
# y = 2 * x + 5
# plt.title("Matplotlib demo")
# plt.xlabel('x axis caption')
# plt.ylabel('y axis caption')
# plt.plot(x, y)
# plt.show()

# x = np.arange(1, 11)
# y = 2 * x + 5
# plt.title("Matplotlib demo")
# plt.xlabel('x axis caption')
# plt.ylabel('y axis caption')
# plt.plot(x, y, 'ob')    # 要显示圆来代表点，而不是上面示例中的线，请使用ob作为plot()函数中的格式字符串
# plt.show()

# 以下脚本使用 matplotlib 生成正弦波图。

# 计算正弦曲线上点的x和y坐标
# x = np.arange(0, 3 * np.pi, 0.1)
# y = np.sin(x)
# plt.title('sine wave form')
# # 使用matplotlib来绘制点
# plt.plot(x, y)
# plt.show()

# 计算正弦和余弦曲线上的点的 x 和 y 坐标
# x = np.arange(0, 3 * np.pi, 0.1)
# y_sin = np.sin(x)
# y_cos = np.cos(x)
# # 建立 subplot 网格，高为 2，宽为 1
# # 激活第一个 subplot
# plt.subplot(2, 1, 1)
# # 绘制第一个图像
# plt.plot(x, y_sin)
# plt.title('Sine')
# # 将第二个 subplot 激活，并绘制第二个图像
# plt.subplot(2, 1, 2)
# plt.plot(x, y_cos)
# plt.title('Cosine')
# # 展示图像
# plt.show()

# bar()
# pyplot子模块提供bar()函数来生成条形图。 以下示例生成两组x和y数组的条形图。
# x = [5, 8, 10]
# y = [12, 16, 6]
# x2 = [6, 9, 11]
# y2 = [6, 15, 7]
# plt.bar(x, y, align = 'center')
# plt.bar(x2, y2, color = 'g', align = 'center')
# plt.title('Bar graph')
# plt.ylabel('Y axis')
# plt.xlabel('X axis')
# plt.show()

# numpy.histogram()
# numpy.histogram()函数将输入数组和bin作为两个参数。 bin数组中的连续元素用作每个bin的边界。
# a = np.array([22, 87, 5, 43, 56, 73, 55, 54, 11, 20, 51, 5, 79, 31, 27])
# np.histogram(a, bins = [0, 20, 40, 60, 80, 100])
# hist, bins = np.histogram(a, bins = [0, 20, 40, 60, 80, 100])
# print(hist)
# print(bins)

# Matplotlib 可以将直方图的数字表示转换为图形。
# pyplot子模块的plt()函数将包含数据和bin数组的数组作为参数，并转换为直方图。
# a = np.array([22, 87, 5, 43, 56, 73, 55, 54, 11, 20, 51, 5, 79, 31, 27])
# plt.hist(a, bins = [0, 20, 40, 60, 80, 100])
# plt.title("histogram")
# plt.show()

#
